/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作，如果要增加数据库操作请在当前目录下Partial文件夹IproductinformationmodelRepository编写接口
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VOL.Core.BaseProvider;
using VOL.Entity.DomainModels;
using VOL.Core.Extensions.AutofacManager;
namespace VOL.demo.IRepositories
{
    public partial interface IproductinformationmodelRepository : IDependency,IRepository<productinformationmodel>
    {
        /// <summary>
        /// 获取货品信息下拉选项
        /// </summary>
        /// <param name="keyword">搜索关键词</param>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">每页记录数</param>
        /// <returns>货品信息列表</returns>
        Task<(List<productinformationmodel> Data, int TotalCount)> GetProductOptionsAsync(
            string keyword = null, 
            int pageIndex = 1, 
            int pageSize = 10);

        /// <summary>
        /// 根据货品ID获取货品信息
        /// </summary>
        /// <param name="productId">货品ID</param>
        /// <returns>货品信息</returns>
        Task<productinformationmodel> GetProductByIdAsync(long productId);

        /// <summary>
        /// 根据货品ID列表批量获取货品信息
        /// </summary>
        /// <param name="productIds">货品ID列表</param>
        /// <returns>货品信息列表</returns>
        Task<List<productinformationmodel>> GetProductsByIdsAsync(List<long> productIds);
    }
}
